package com.dragon.annotation;

import java.util.List;

/**
 * 生成sql接口
 *
 * @author dragon
 * @since 2019/11/12
 */
public interface GenSql {

    /**
     * 分隔符
     */
    String DELIMETER = ";";

    /**
     * 建表语句开头
     */
    String CREATE_TABLE = "create table";

    /**
     * 主键
     */
    String PRIMARY_KEY = "primary key";

    /**
     * 自动增长
     */
    String AUTO_INCREMENT = "auto_increment";

    /**
     * 不为null
     */
    String NOT_NULL = "not null";

    /**
     * 唯一约束
     */
    String UNIQUE = "unique";

    /**
     * 括号
     */
    String BRACKET = "(";

    /**
     * 反括号
     */
    String ANTI_BRACKET = ")";

    /**
     * 逗号
     */
    String COMMA = ",";

    /**
     * 空格
     */
    String BLANK = " ";

    /**
     * 默认的编码
     */
    String DEFAULT_ENCODING = "DEFAULT charset=utf8";

    /**
     * 默认的mysql数据库引擎
     */
    String DEFAULT_ENGINE = "ENGINE = INNODB";

    /**
     * 默认的主键的类型
     */
    String DEFAULT_PRIMARY_KEY_TYPE = "INT";

    /**
     * 生成sql语句
     *
     * @param entityTable 数据库表
     * @return java.lang.String sql语句
     */
    String generateSql(EntityTable entityTable);

    /**
     * 生成sql语句
     *
     * @param entityTableList 数据库表集合
     * @return java.lang.String sql语句
     */
    String generateSql(List<EntityTable> entityTableList);

}
